#pragma once

#include <list>
#include <vector>

#import "..\..\Debug\GLObjects.dll"

typedef std::vector<CComPtr<GLObjectsLib::IGLObject>> CGLObjectsList;

class CGLDoc : public CDocument
{
private:
	CGLObjectsList m_glObjects;
protected: // create from serialization only
	CGLDoc();
	DECLARE_DYNCREATE(CGLDoc)

// Attributes
public:

// Operations
public:
	CGLObjectsList& GetObjects()
	{
		return m_glObjects;
	}
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CGLDoc)
	public:
	virtual BOOL OnNewDocument();
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CGLDoc();
	virtual void Serialize(CArchive& ar);   // overridden for document i/o
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CGLDoc)
		// NOTE - the ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
